package view;

/**
 * @author eversonpaulo
 */
import Utilitarios.TamanhoMaximoTextField;
import dao.FisicaDAO;
import dao.JuridicaDAO;
import dao.PessoaDAO;
import dao.SetorDAO;
import java.awt.BorderLayout;

import java.awt.Component;
import java.awt.Cursor;
import java.awt.Font;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import javax.swing.table.DefaultTableModel;
import model.Fisica;
import model.Juridica;
import model.Pessoa;
import model.Setor;

//import net.sf.jasperreports.engine.JRException;
public class framePessoa extends javax.swing.JInternalFrame {

    private DefaultTableModel modelo = new DefaultTableModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    String opcao = "";
    public int inutil;

    public framePessoa() {
        initComponents();
        liberarCampos(false);
        tabela();

        //Esconde os jPanel's da especificação de Pessoa
        jPanelFisica.setVisible(false);
        jPanelJuridica.setVisible(false);

        //Tira as barras de todos os lados da janela
        ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setSouthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setWestPane(null);
        ((BasicInternalFrameUI) this.getUI()).setEastPane(null);

        jtBairro.setDocument(new TamanhoMaximoTextField(50));
        //ftCep.setDocument(new TamanhoMaximoTextField(22));

        exibePainelCadastro(false);

        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbCep.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbBairro.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbIncluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbAlterar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSalvar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbCancelar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbExcluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSair.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo2.setFont(new Font("Tahoma", Font.PLAIN, 11));

        lbCodigo.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbRua.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbCep.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbNome.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbBairro.setFont(new Font("Tahoma", Font.PLAIN, 11));

        ajusta_botoes();

        //this.getContentPane().add(barraInferior,BorderLayout.SOUTH);
        monta_jTUnidade();
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel2 = new javax.swing.JPanel();
        buttonGroupTipo = new javax.swing.ButtonGroup();
        buttonGroup2 = new javax.swing.ButtonGroup();
        btAvancar1 = new javax.swing.JButton();
        btAvancar2 = new javax.swing.JButton();
        btPrimeiro = new javax.swing.JButton();
        btAnterior = new javax.swing.JButton();
        btProximo = new javax.swing.JButton();
        btUltimo = new javax.swing.JButton();
        btNovo = new javax.swing.JButton();
        btEditar = new javax.swing.JButton();
        btCancelar = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        btGravar1 = new javax.swing.JButton();
        btGravar2 = new javax.swing.JButton();
        btImprimir = new javax.swing.JButton();
        relTipo1 = new javax.swing.JRadioButton();
        relTipo2 = new javax.swing.JRadioButton();
        jPanel1 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        lbTitulo = new javax.swing.JLabel();
        jPanelFisica = new javax.swing.JPanel();
        lbCpf = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        jtNumAgencia = new javax.swing.JTextField();
        lbNumAgencia = new javax.swing.JLabel();
        jtNumBanco = new javax.swing.JTextField();
        lbNumBanco = new javax.swing.JLabel();
        jtNomeBanco = new javax.swing.JTextField();
        lbNomeBanco = new javax.swing.JLabel();
        jtNomeAgencia = new javax.swing.JTextField();
        lbNomeAgencia = new javax.swing.JLabel();
        lbNumConta = new javax.swing.JLabel();
        jtNumConta = new javax.swing.JTextField();
        ftCPF = new javax.swing.JFormattedTextField();
        jPanelJuridica = new javax.swing.JPanel();
        lbCnpj = new javax.swing.JLabel();
        jSeparator8 = new javax.swing.JSeparator();
        jPanel5 = new javax.swing.JPanel();
        jtNumAgencia1 = new javax.swing.JTextField();
        lbNumAgencia1 = new javax.swing.JLabel();
        jtNumBanco1 = new javax.swing.JTextField();
        lbNumBanco1 = new javax.swing.JLabel();
        jtNomeBanco1 = new javax.swing.JTextField();
        lbNomeBanco1 = new javax.swing.JLabel();
        jtNomeAgencia1 = new javax.swing.JTextField();
        lbNomeAgencia1 = new javax.swing.JLabel();
        lbNumConta1 = new javax.swing.JLabel();
        jtNumConta1 = new javax.swing.JTextField();
        lbRazaoSocial = new javax.swing.JLabel();
        jtRazaoSocial = new javax.swing.JTextField();
        ftCNPJ = new javax.swing.JFormattedTextField();
        jPanelPessoa = new javax.swing.JPanel();
        lbNome = new javax.swing.JLabel();
        jtNome = new javax.swing.JTextField();
        lbTelefone = new javax.swing.JLabel();
        ftFone = new javax.swing.JFormattedTextField();
        jPanel6 = new javax.swing.JPanel();
        lbCep = new javax.swing.JLabel();
        cbEstado = new javax.swing.JComboBox();
        lbUf = new javax.swing.JLabel();
        jtCidade = new javax.swing.JTextField();
        jtRua = new javax.swing.JTextField();
        lbCidade = new javax.swing.JLabel();
        jtBairro = new javax.swing.JTextField();
        lbBairro = new javax.swing.JLabel();
        lbRua = new javax.swing.JLabel();
        ftCep = new javax.swing.JFormattedTextField();
        lbNumero = new javax.swing.JLabel();
        jtNumero = new javax.swing.JTextField();
        jtCod = new javax.swing.JTextField();
        lbCodigo = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTUnidade = new javax.swing.JTable();
        lbTipo = new javax.swing.JLabel();
        rbFisica = new javax.swing.JRadioButton();
        rbJuridica = new javax.swing.JRadioButton();
        btSair = new javax.swing.JButton();

        btAvancar1.setText("Avançar");
        btAvancar1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAvancar1ActionPerformed(evt);
            }
        });

        btAvancar2.setText("Avançar");
        btAvancar2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAvancar2ActionPerformed(evt);
            }
        });

        setClosable(true);
        setTitle("Gerenciamento de Pessoa");
        setToolTipText("");
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btPrimeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff (2).png"))); // NOI18N
        btPrimeiro.setToolTipText("Primeiro Registro");
        btPrimeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPrimeiroActionPerformed(evt);
            }
        });
        getContentPane().add(btPrimeiro, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 400, -1, -1));

        btAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play (2).png"))); // NOI18N
        btAnterior.setToolTipText("Registro Anterior");
        btAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAnteriorActionPerformed(evt);
            }
        });
        getContentPane().add(btAnterior, new org.netbeans.lib.awtextra.AbsoluteConstraints(100, 400, -1, -1));

        btProximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play.png"))); // NOI18N
        btProximo.setToolTipText("Próximo Registro");
        btProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btProximoActionPerformed(evt);
            }
        });
        getContentPane().add(btProximo, new org.netbeans.lib.awtextra.AbsoluteConstraints(570, 400, -1, -1));

        btUltimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff.png"))); // NOI18N
        btUltimo.setToolTipText("Último Registro");
        btUltimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btUltimoActionPerformed(evt);
            }
        });
        getContentPane().add(btUltimo, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 400, -1, -1));

        btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709290_Add.png"))); // NOI18N
        btNovo.setToolTipText("Inserir um novo registro");
        btNovo.setFocusable(false);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btNovo.setMinimumSize(new java.awt.Dimension(85, 25));
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        getContentPane().add(btNovo, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 70, -1, 40));

        btEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709081_edit-file.png"))); // NOI18N
        btEditar.setToolTipText("Alterar o registro atual");
        btEditar.setFocusable(false);
        btEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditarActionPerformed(evt);
            }
        });
        getContentPane().add(btEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 70, -1, 40));

        btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708933_Redo.png"))); // NOI18N
        btCancelar.setToolTipText("Cancelar alterações ou a inclusão do novo registro");
        btCancelar.setFocusable(false);
        btCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(210, 70, -1, 40));

        btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708641_Delete.png"))); // NOI18N
        btExcluir.setToolTipText("Excluir o registro atual");
        btExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btExcluir.setFocusable(false);
        btExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExcluirActionPerformed(evt);
            }
        });
        getContentPane().add(btExcluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(360, 70, -1, 40));

        btGravar1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar1.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar1.setFocusable(false);
        btGravar1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btGravar1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravar1ActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar1, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 70, -1, 40));

        btGravar2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar2.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar2.setFocusable(false);
        btGravar2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btGravar2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravar2ActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar2, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 70, -1, 40));

        btImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709420_printer.png"))); // NOI18N
        btImprimir.setToolTipText("Imprime Relatório da Tabela Atual");
        btImprimir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btImprimirActionPerformed(evt);
            }
        });
        getContentPane().add(btImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(490, 70, -1, 40));

        buttonGroup2.add(relTipo1);
        relTipo1.setText("Código");
        relTipo1.setToolTipText("Relatório por Código");
        getContentPane().add(relTipo1, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 80, 60, 30));

        buttonGroup2.add(relTipo2);
        relTipo2.setText("Sigla");
        relTipo2.setToolTipText("Relatório por Descrição");
        getContentPane().add(relTipo2, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 80, 80, 30));
        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 880, 740, 10));
        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 20, 550));

        lbTitulo.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        lbTitulo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbTitulo.setText("Pessoa");
        getContentPane().add(lbTitulo, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 10, 610, 30));

        jPanelFisica.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Física"));
        jPanelFisica.setName("Pessoa Física"); // NOI18N
        jPanelFisica.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbCpf.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCpf.setText("CPF:");
        jPanelFisica.add(lbCpf, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 20, 80, 20));

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Dados Bancarios"));
        jPanel3.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jtNumAgencia.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNumAgencia.setToolTipText("Responsável pelo Setor");
        jtNumAgencia.setAutoscrolls(false);
        jtNumAgencia.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumAgenciaActionPerformed(evt);
            }
        });
        jtNumAgencia.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumAgenciaKeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumAgenciaKeyTyped(evt);
            }
        });
        jPanel3.add(jtNumAgencia, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 40, 150, -1));
        jtNumAgencia.getAccessibleContext().setAccessibleDescription("  ");

        lbNumAgencia.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNumAgencia.setText("Numero da Agencia:");
        jPanel3.add(lbNumAgencia, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 20, 130, 20));

        jtNumBanco.setToolTipText("Sigla Do Organograma");
        jtNumBanco.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumBancoActionPerformed(evt);
            }
        });
        jtNumBanco.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumBancoKeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumBancoKeyTyped(evt);
            }
        });
        jPanel3.add(jtNumBanco, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, 150, -1));
        jtNumBanco.getAccessibleContext().setAccessibleDescription("  ");

        lbNumBanco.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNumBanco.setText("Numero do Banco:");
        jPanel3.add(lbNumBanco, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, 110, 20));

        jtNomeBanco.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNomeBanco.setToolTipText("");
        jPanel3.add(jtNomeBanco, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, 150, -1));
        jtNomeBanco.getAccessibleContext().setAccessibleDescription("  ");

        lbNomeBanco.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNomeBanco.setText("Nome do Banco:");
        jPanel3.add(lbNomeBanco, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, 100, 20));

        jtNomeAgencia.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNomeAgencia.setToolTipText("");
        jtNomeAgencia.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNomeAgenciaActionPerformed(evt);
            }
        });
        jPanel3.add(jtNomeAgencia, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 150, -1));
        jtNomeAgencia.getAccessibleContext().setAccessibleDescription("  ");

        lbNomeAgencia.setText("Nome da Agencia:");
        jPanel3.add(lbNomeAgencia, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, 110, -1));

        lbNumConta.setText("Numero da Conta:");
        jPanel3.add(lbNumConta, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 20, 110, 20));

        jtNumConta.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumContaActionPerformed(evt);
            }
        });
        jtNumConta.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumContaKeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumContaKeyTyped(evt);
            }
        });
        jPanel3.add(jtNumConta, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 40, 140, -1));
        jtNumConta.getAccessibleContext().setAccessibleDescription("  ");

        jPanelFisica.add(jPanel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 570, 150));

        try {
            ftCPF.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("###.###.###-##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        ftCPF.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        ftCPF.setToolTipText("Número do CPF");
        ftCPF.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                ftCPFFocusLost(evt);
            }
        });
        ftCPF.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                ftCPFKeyTyped(evt);
            }
        });
        jPanelFisica.add(ftCPF, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 40, 100, -1));

        getContentPane().add(jPanelFisica, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 450, 620, 270));

        jPanelJuridica.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Juridica"));
        jPanelJuridica.setName("Pessoa Física"); // NOI18N
        jPanelJuridica.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbCnpj.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCnpj.setText("CPNJ:");
        jPanelJuridica.add(lbCnpj, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 20, 80, 20));
        jPanelJuridica.add(jSeparator8, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 242, 650, 0));

        jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Dados Bancarios"));
        jPanel5.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jtNumAgencia1.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNumAgencia1.setToolTipText("Responsável pelo Setor");
        jtNumAgencia1.setAutoscrolls(false);
        jtNumAgencia1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumAgencia1ActionPerformed(evt);
            }
        });
        jtNumAgencia1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumAgencia1KeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumAgencia1KeyTyped(evt);
            }
        });
        jPanel5.add(jtNumAgencia1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 40, 150, -1));
        jtNumAgencia1.getAccessibleContext().setAccessibleDescription("   ");

        lbNumAgencia1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNumAgencia1.setText("Numero da Agencia:");
        jPanel5.add(lbNumAgencia1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 20, 130, 20));

        jtNumBanco1.setToolTipText("Sigla Do Organograma");
        jtNumBanco1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumBanco1ActionPerformed(evt);
            }
        });
        jtNumBanco1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumBanco1KeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumBanco1KeyTyped(evt);
            }
        });
        jPanel5.add(jtNumBanco1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 40, 150, -1));
        jtNumBanco1.getAccessibleContext().setAccessibleDescription("");

        lbNumBanco1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNumBanco1.setText("Numero do Banco:");
        jPanel5.add(lbNumBanco1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 20, 110, 20));

        jtNomeBanco1.setToolTipText("Sigla do Setor");
        jPanel5.add(jtNomeBanco1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 90, 150, -1));
        jtNomeBanco1.getAccessibleContext().setAccessibleDescription("   ");

        lbNomeBanco1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNomeBanco1.setText("Nome do Banco:");
        jPanel5.add(lbNomeBanco1, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 70, 100, 20));

        jtNomeAgencia1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNomeAgencia1ActionPerformed(evt);
            }
        });
        jPanel5.add(jtNomeAgencia1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 150, -1));
        jtNomeAgencia1.getAccessibleContext().setAccessibleDescription("   ");

        lbNomeAgencia1.setText("Nome da Agencia:");
        jPanel5.add(lbNomeAgencia1, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, 110, 20));

        lbNumConta1.setText("Numero da Conta:");
        jPanel5.add(lbNumConta1, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 20, 110, 20));

        jtNumConta1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNumConta1ActionPerformed(evt);
            }
        });
        jtNumConta1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jtNumConta1KeyPressed(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumConta1KeyTyped(evt);
            }
        });
        jPanel5.add(jtNumConta1, new org.netbeans.lib.awtextra.AbsoluteConstraints(420, 40, 140, -1));
        jtNumConta1.getAccessibleContext().setAccessibleDescription("   ");

        jPanelJuridica.add(jPanel5, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 80, 570, 150));

        lbRazaoSocial.setText("Razão Social:");
        jPanelJuridica.add(lbRazaoSocial, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 20, 90, 20));
        jPanelJuridica.add(jtRazaoSocial, new org.netbeans.lib.awtextra.AbsoluteConstraints(230, 40, 350, -1));

        try {
            ftCNPJ.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("##.###.###/####-##")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        ftCNPJ.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        ftCNPJ.setToolTipText("Número do CNPJ");
        ftCNPJ.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ftCNPJActionPerformed(evt);
            }
        });
        ftCNPJ.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                ftCNPJFocusLost(evt);
            }
        });
        jPanelJuridica.add(ftCNPJ, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 40, 140, -1));

        getContentPane().add(jPanelJuridica, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 450, 620, 270));

        jPanelPessoa.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Pessoa"));
        jPanelPessoa.setName("Pessoa Física"); // NOI18N
        jPanelPessoa.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbNome.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbNome.setText("Nome");
        jPanelPessoa.add(lbNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 20, 80, 20));

        jtNome.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtNome.setToolTipText("");
        jtNome.setAutoscrolls(false);
        jtNome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtNomeActionPerformed(evt);
            }
        });
        jPanelPessoa.add(jtNome, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 40, 330, -1));
        jtNome.getAccessibleContext().setAccessibleDescription("Nome");

        lbTelefone.setText("Telefone:");
        jPanelPessoa.add(lbTelefone, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 20, -1, 20));

        try {
            ftFone.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("(##)-####-####")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        ftFone.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        ftFone.setToolTipText("Número do Telefone 1");
        ftFone.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ftFoneActionPerformed(evt);
            }
        });
        ftFone.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                ftFoneKeyTyped(evt);
            }
        });
        jPanelPessoa.add(ftFone, new org.netbeans.lib.awtextra.AbsoluteConstraints(410, 40, 110, -1));

        jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder(), "Endereço"));
        jPanel6.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        lbCep.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCep.setText("Cep:");
        jPanel6.add(lbCep, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 20, 40, 20));

        cbEstado.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO" }));
        cbEstado.setSelectedIndex(-1);
        cbEstado.setToolTipText("");
        cbEstado.setInheritsPopupMenu(true);
        cbEstado.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                cbEstadoActionPerformed(evt);
            }
        });
        jPanel6.add(cbEstado, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 90, 60, -1));

        lbUf.setText("UF:");
        jPanel6.add(lbUf, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 70, -1, 20));

        jtCidade.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtCidade.setToolTipText("");
        jtCidade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCidadeActionPerformed(evt);
            }
        });
        jPanel6.add(jtCidade, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 90, 140, -1));
        jtCidade.getAccessibleContext().setAccessibleName("Cidade");
        jtCidade.getAccessibleContext().setAccessibleDescription("Cidade");

        jtRua.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtRua.setToolTipText("");
        jtRua.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtRuaActionPerformed(evt);
            }
        });
        jPanel6.add(jtRua, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 40, 340, -1));
        jtRua.getAccessibleContext().setAccessibleDescription("Rua");

        lbCidade.setText("Cidade:");
        jPanel6.add(lbCidade, new org.netbeans.lib.awtextra.AbsoluteConstraints(220, 70, -1, 20));

        jtBairro.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtBairro.setToolTipText("");
        jtBairro.setAutoscrolls(false);
        jtBairro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtBairroActionPerformed(evt);
            }
        });
        jPanel6.add(jtBairro, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 90, 150, -1));
        jtBairro.getAccessibleContext().setAccessibleDescription("Bairro");

        lbBairro.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbBairro.setText("Bairro:");
        jPanel6.add(lbBairro, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 70, 80, 20));

        lbRua.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbRua.setText("Rua:");
        jPanel6.add(lbRua, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 20, 80, 20));

        try {
            ftCep.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.MaskFormatter("#####-###")));
        } catch (java.text.ParseException ex) {
            ex.printStackTrace();
        }
        ftCep.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        ftCep.setToolTipText("CEP");
        ftCep.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                ftCepFocusLost(evt);
            }
        });
        ftCep.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                ftCepKeyTyped(evt);
            }
        });
        jPanel6.add(ftCep, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 40, 110, -1));

        lbNumero.setText("Número:");
        jPanel6.add(lbNumero, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 70, -1, -1));

        jtNumero.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jtNumeroKeyTyped(evt);
            }
        });
        jPanel6.add(jtNumero, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 90, 60, -1));
        jtNumero.getAccessibleContext().setAccessibleName("Numero");
        jtNumero.getAccessibleContext().setAccessibleDescription("Numero");

        jPanelPessoa.add(jPanel6, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 80, 580, 150));

        jtCod.setEditable(false);
        jtCod.setBackground(new java.awt.Color(204, 204, 204));
        jtCod.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtCod.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        jtCod.setToolTipText("Código Único");
        jtCod.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtCod.setDisabledTextColor(new java.awt.Color(204, 204, 204));
        jtCod.setFocusable(false);
        jtCod.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCodActionPerformed(evt);
            }
        });
        jPanelPessoa.add(jtCod, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 40, 50, -1));
        jtCod.getAccessibleContext().setAccessibleDescription("Código");

        lbCodigo.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbCodigo.setText("Código :");
        lbCodigo.setFocusable(false);
        jPanelPessoa.add(lbCodigo, new org.netbeans.lib.awtextra.AbsoluteConstraints(540, 20, 50, 20));

        getContentPane().add(jPanelPessoa, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 130, 620, 260));
        jPanelPessoa.getAccessibleContext().setAccessibleName("Pessoa Física");

        jTUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTUnidade.setToolTipText("Registro Cadastrados");
        jTUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTUnidadeMouseClicked(evt);
            }
        });
        jTUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTUnidadeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(jTUnidade);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 130, 620, 260));

        lbTipo.setText("Tipo:");
        getContentPane().add(lbTipo, new org.netbeans.lib.awtextra.AbsoluteConstraints(50, 420, -1, 20));

        buttonGroupTipo.add(rbFisica);
        rbFisica.setText("Física");
        rbFisica.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rbFisicaActionPerformed(evt);
            }
        });
        getContentPane().add(rbFisica, new org.netbeans.lib.awtextra.AbsoluteConstraints(80, 420, -1, -1));

        buttonGroupTipo.add(rbJuridica);
        rbJuridica.setText("Jurídica");
        rbJuridica.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                rbJuridicaActionPerformed(evt);
            }
        });
        getContentPane().add(rbJuridica, new org.netbeans.lib.awtextra.AbsoluteConstraints(140, 420, -1, -1));

        btSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logout_user_login_account-3222.png"))); // NOI18N
        btSair.setToolTipText("Fechar o Cadastro das Unidade Métrica");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });
        getContentPane().add(btSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 730, -1, 40));
        btSair.getAccessibleContext().setAccessibleDescription("Fechar");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btPrimeiroActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(true);
        btUltimo.setEnabled(true);
        btPrimeiro.setEnabled(false);
        btAnterior.setEnabled(false);
    }//GEN-LAST:event_btPrimeiroActionPerformed

    private void btAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAnteriorActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow() - 1;
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual - 1) < 0) {
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
        } else {
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
        }
    }//GEN-LAST:event_btAnteriorActionPerformed

    private void btProximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btProximoActionPerformed
        int linhaAtual, qdeLinhas;
        linhaAtual = jTUnidade.getSelectedRow() + 1;
        qdeLinhas = jTUnidade.getRowCount();

        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        if ((linhaAtual + 1) == qdeLinhas) {
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        } else {
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
        }
    }//GEN-LAST:event_btProximoActionPerformed

    private void btUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUltimoActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            linhaAtual = jTUnidade.getRowCount() - 1;
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }

        btProximo.setEnabled(false);
        btUltimo.setEnabled(false);
        btPrimeiro.setEnabled(true);
        btAnterior.setEnabled(true);
    }//GEN-LAST:event_btUltimoActionPerformed

    private void btImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btImprimirActionPerformed
//        
//        ajustaCursor(0);
//
//        rel_Tabelas relat = new rel_Tabelas();
//        int val = 0;
//
//        if (relTipo1.isSelected()) {
//            val = 0;
//        }
//        if (relTipo2.isSelected()) {
//            val = 1;
//        }
//
//        try {
//            relat.gerar(val, "Cadastro de Setor", "SETOR");
//        } catch (JRException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (SQLException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (ClassNotFoundException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        
//        ajustaCursor(1);

    }//GEN-LAST:event_btImprimirActionPerformed

    private void jTUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTUnidadeMouseClicked
        if (opcao.equals("")) {
            int linhaAtual;
            linhaAtual = jTUnidade.getSelectedRow();
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
    }//GEN-LAST:event_jTUnidadeMouseClicked

    private void jTUnidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTUnidadeKeyReleased
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow();
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        Atribui_Campos();
    }//GEN-LAST:event_jTUnidadeKeyReleased

    private void jtBairroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtBairroActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtBairroActionPerformed

    private void jtNomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNomeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNomeActionPerformed

    private void jtCodActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCodActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCodActionPerformed

    private void jtRuaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtRuaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtRuaActionPerformed

    private void rbJuridicaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbJuridicaActionPerformed
        //valida campos para a tabela de Pessoa
        if (validarCamposPessoa() == true) {
            //Verifica se o tipo Fisica está selecionado
            if (rbJuridica.isSelected()) {
                jPanelPessoa.setVisible(true);
                jPanelJuridica.setVisible(true);
                jPanelFisica.setVisible(false);
                btGravar1.setVisible(true);
                btGravar2.setVisible(false);
                //Joga uma menssagem na tela, se nenhum estiver selecionado
            } else {
                JOptionPane.showMessageDialog(null, "Selecione o tipo de Pessoa!");
                rbFisica.requestFocus();
                rbJuridica.requestFocus();
            }
        }
    }//GEN-LAST:event_rbJuridicaActionPerformed

    private void jtCidadeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCidadeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCidadeActionPerformed

    private void cbEstadoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbEstadoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_cbEstadoActionPerformed

    private void ftFoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ftFoneActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_ftFoneActionPerformed

    private void jtNumBancoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumBancoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumBancoActionPerformed

    private void jtNumAgenciaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumAgenciaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumAgenciaActionPerformed

    private void jtNomeAgenciaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNomeAgenciaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNomeAgenciaActionPerformed

    private void jtNumContaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumContaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumContaActionPerformed

    private void jtNumAgencia1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumAgencia1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumAgencia1ActionPerformed

    private void jtNumBanco1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumBanco1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumBanco1ActionPerformed

    private void jtNomeAgencia1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNomeAgencia1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNomeAgencia1ActionPerformed

    private void jtNumConta1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtNumConta1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtNumConta1ActionPerformed

    private void btAvancar1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAvancar1ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btAvancar1ActionPerformed

    private void btAvancar2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAvancar2ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_btAvancar2ActionPerformed

    private void btGravar2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravar2ActionPerformed
        gravaRegistroFisica();
    }//GEN-LAST:event_btGravar2ActionPerformed

    private void btGravar1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravar1ActionPerformed
        gravaRegistroJuridica();
    }//GEN-LAST:event_btGravar1ActionPerformed

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        cancelaRegistro();
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExcluirActionPerformed
        excluiRegistro();
    }//GEN-LAST:event_btExcluirActionPerformed

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditarActionPerformed
        alteraRegistro();
        jPanelPessoa.setVisible(true);
    }//GEN-LAST:event_btEditarActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        novoRegistro();
        jPanelPessoa.setVisible(true);
    }//GEN-LAST:event_btNovoActionPerformed

    private void jtNumBancoKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumBancoKeyPressed

    }//GEN-LAST:event_jtNumBancoKeyPressed

    private void jtNumAgenciaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumAgenciaKeyPressed

    }//GEN-LAST:event_jtNumAgenciaKeyPressed

    private void jtNumContaKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumContaKeyPressed

    }//GEN-LAST:event_jtNumContaKeyPressed

    private void jtNumBanco1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumBanco1KeyPressed

    }//GEN-LAST:event_jtNumBanco1KeyPressed

    private void jtNumAgencia1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumAgencia1KeyPressed

    }//GEN-LAST:event_jtNumAgencia1KeyPressed

    private void jtNumConta1KeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumConta1KeyPressed

    }//GEN-LAST:event_jtNumConta1KeyPressed

    private void ftCNPJActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ftCNPJActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_ftCNPJActionPerformed

    private void ftCNPJFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_ftCNPJFocusLost
        Juridica j = new Juridica();
        JuridicaDAO jdao = new JuridicaDAO();
        List<Juridica> jl = new ArrayList<Juridica>();
        if (!opcao.equals("")) {
            if (!(ftCNPJ.getText().equals("  .   .   /    -  "))) {
                if (j.validarCNPJ(ftCNPJ.getText().replace(".", "").replace("/", "").replace("-", "")) == false) {
                    JOptionPane.showMessageDialog(null, "Número de CNPJ: " + ftCNPJ.getText() + " - Invalido. Verifique!!!");
                    ftCNPJ.setText(null);
                    ftCNPJ.setText("  .   .   /    -  ");
                    ftCNPJ.requestFocus();
                    return;
                }
                //jl = jdao.pesquisaFornecedorCNPJ(ftCNPJ.getText());

                if (jl.isEmpty()) {
                } else {
                    JOptionPane.showMessageDialog(null, "Este CNPJ já Cadastrado no Sistema. Favor Verifique!!!");
                    requestFocus();
                    return;
                }
                /*if (F.jaTemCadastro(ftCNPJ.getText().replace( ".", "" ).replace( "/", "" ).replace( "-", "" )) == true) {
                 JOptionPane.showMessageDialog(null,"Este CNPJ já Cadastrado no Sistema. Favor Verifique!!!");
                 ftCNPJ.setText(null);
                 ftCNPJ.setText("  .   .   /    -  ");
                 ftCNPJ.requestFocus();
                 return;
                 }*/
            }
        }
    }//GEN-LAST:event_ftCNPJFocusLost

    private void ftCPFFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_ftCPFFocusLost
        Fisica f = new Fisica();
        FisicaDAO fdao = new FisicaDAO();
        List<Fisica> fl = new ArrayList<Fisica>();

        if (!opcao.equals("")) {
            if (!(ftCPF.getText().equals("   .   .   -  "))) {
                if (f.validarCPF(ftCPF.getText().replace(".", "").replace("-", "")) == false) {
                    JOptionPane.showMessageDialog(null, "Número de CPF: " + ftCPF.getText() + " - Invalido. Verifique!!!");
                    ftCPF.setText(null);
                    ftCPF.setText("   .   .   -  ");
                    ftCPF.requestFocus();
                    return;
                }

                //fl = fdao.pesquisaFornecedorCPF(ftCPF.getText());
                if (fl.isEmpty()) {
                } else {
                    JOptionPane.showMessageDialog(null, "Este CPF já Cadastrado no Sistema. Favor Verifique!!!");
                    requestFocus();
                    return;
                }
                /* if (f.jaTemCadastro(ftCPF.getText().replace( ".", "" ).replace( "-", "" )) == true) {
                 JOptionPane.showMessageDialog(null,"Este CPF já Cadastrado no Sistema. Favor Verifique!!!");
                 ftCPF.setText(null);
                 ftCPF.setText("   .   .   -  ");
                 ftCPF.requestFocus();
                 return;
                 }*/
            }
        }
    }//GEN-LAST:event_ftCPFFocusLost

    private void jtNumAgenciaKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumAgenciaKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumAgenciaKeyTyped

    private void jtNumBancoKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumBancoKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumBancoKeyTyped

    private void jtNumContaKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumContaKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumContaKeyTyped

    private void jtNumBanco1KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumBanco1KeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumBanco1KeyTyped

    private void jtNumAgencia1KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumAgencia1KeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumAgencia1KeyTyped

    private void jtNumConta1KeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumConta1KeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumConta1KeyTyped

    private void ftCPFKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ftCPFKeyTyped
        // TODO add your handling code here:
    }//GEN-LAST:event_ftCPFKeyTyped

    private void ftCepFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_ftCepFocusLost
        // TODO add your handling code here:
    }//GEN-LAST:event_ftCepFocusLost

    private void jtNumeroKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jtNumeroKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_jtNumeroKeyTyped

    private void ftCepKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ftCepKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_ftCepKeyTyped

    private void ftFoneKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_ftFoneKeyTyped
        String caracteres = "0987654321";
        if (!caracteres.contains(evt.getKeyChar() + "")) {
            evt.consume();
        }
    }//GEN-LAST:event_ftFoneKeyTyped

    private void rbFisicaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbFisicaActionPerformed
        //valida campos para a tabela de Pessoa
        if (validarCamposPessoa() == true) {
            //Verifica se o tipo Fisica está selecionado
            if (rbFisica.isSelected()) {
                jPanelPessoa.setVisible(true);
                jPanelFisica.setVisible(true);
                jPanelJuridica.setVisible(false);
                btGravar2.setVisible(true);
                btGravar1.setVisible(false);
                //Verifica se o tipo Juridica está selecionado
            } else {
                JOptionPane.showMessageDialog(null, "Selecione o tipo de Pessoa!");
                rbFisica.requestFocus();
            }
        }
    }//GEN-LAST:event_rbFisicaActionPerformed

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSairActionPerformed
        saiTela();
    }//GEN-LAST:event_btSairActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAnterior;
    private javax.swing.JButton btAvancar1;
    private javax.swing.JButton btAvancar2;
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btGravar1;
    private javax.swing.JButton btGravar2;
    private javax.swing.JButton btImprimir;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btPrimeiro;
    private javax.swing.JButton btProximo;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btUltimo;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.ButtonGroup buttonGroupTipo;
    private javax.swing.JComboBox cbEstado;
    private javax.swing.JFormattedTextField ftCNPJ;
    private javax.swing.JFormattedTextField ftCPF;
    private javax.swing.JFormattedTextField ftCep;
    private javax.swing.JFormattedTextField ftFone;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanelFisica;
    private javax.swing.JPanel jPanelJuridica;
    private javax.swing.JPanel jPanelPessoa;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JSeparator jSeparator8;
    private javax.swing.JTable jTUnidade;
    private javax.swing.JTextField jtBairro;
    private javax.swing.JTextField jtCidade;
    private javax.swing.JTextField jtCod;
    private javax.swing.JTextField jtNome;
    private javax.swing.JTextField jtNomeAgencia;
    private javax.swing.JTextField jtNomeAgencia1;
    private javax.swing.JTextField jtNomeBanco;
    private javax.swing.JTextField jtNomeBanco1;
    private javax.swing.JTextField jtNumAgencia;
    private javax.swing.JTextField jtNumAgencia1;
    private javax.swing.JTextField jtNumBanco;
    private javax.swing.JTextField jtNumBanco1;
    private javax.swing.JTextField jtNumConta;
    private javax.swing.JTextField jtNumConta1;
    private javax.swing.JTextField jtNumero;
    private javax.swing.JTextField jtRazaoSocial;
    private javax.swing.JTextField jtRua;
    private javax.swing.JLabel lbBairro;
    private javax.swing.JLabel lbCep;
    private javax.swing.JLabel lbCidade;
    private javax.swing.JLabel lbCnpj;
    private javax.swing.JLabel lbCodigo;
    private javax.swing.JLabel lbCpf;
    private javax.swing.JLabel lbNome;
    private javax.swing.JLabel lbNomeAgencia;
    private javax.swing.JLabel lbNomeAgencia1;
    private javax.swing.JLabel lbNomeBanco;
    private javax.swing.JLabel lbNomeBanco1;
    private javax.swing.JLabel lbNumAgencia;
    private javax.swing.JLabel lbNumAgencia1;
    private javax.swing.JLabel lbNumBanco;
    private javax.swing.JLabel lbNumBanco1;
    private javax.swing.JLabel lbNumConta;
    private javax.swing.JLabel lbNumConta1;
    private javax.swing.JLabel lbNumero;
    private javax.swing.JLabel lbRazaoSocial;
    private javax.swing.JLabel lbRua;
    private javax.swing.JLabel lbTelefone;
    private javax.swing.JLabel lbTipo;
    private javax.swing.JLabel lbTitulo;
    private javax.swing.JLabel lbUf;
    private javax.swing.JRadioButton rbFisica;
    private javax.swing.JRadioButton rbJuridica;
    private javax.swing.JRadioButton relTipo1;
    private javax.swing.JRadioButton relTipo2;
    // End of variables declaration//GEN-END:variables

    public void saiTela() {
        framePessoa.this.dispose();
    }

    public void ajustaCursor(int tipo) {
        Cursor cursor;

        if (tipo == 0) {
            cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        } else {
            cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
        }

        setCursor(cursor);

    }

    public void ajusta_botoes() {
        if (opcao.equals("")) {
            //btVoltar1.setEnabled(false);
            btCancelar.setEnabled(false);
            btNovo.setEnabled(true);
            btEditar.setEnabled(true);
            btExcluir.setEnabled(true);

//            lbSalvar.setEnabled(false);
//            lbCancelar.setEnabled(false);
//            lbIncluir.setEnabled(true);
//            lbAlterar.setEnabled(true);
//            lbExcluir.setEnabled(true);
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);

        } else {
            //btVoltar1.setEnabled(true);
            btCancelar.setEnabled(true);
            btNovo.setEnabled(false);
            btEditar.setEnabled(false);
            btExcluir.setEnabled(false);

//            lbSalvar.setEnabled(true);
//            lbCancelar.setEnabled(true);
//            lbIncluir.setEnabled(false);
//            lbAlterar.setEnabled(false);
//            lbExcluir.setEnabled(false);
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        }
    }

    public void tabela() {
        jTUnidade.setModel(modelo);

        modelo.addColumn("ID");
        modelo.addColumn("Nome");
        modelo.addColumn("CPF/CNPJ");
        modelo.addColumn("Razão Social");
        modelo.addColumn("Tipo");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");
        modelo.addColumn("");

        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(2).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(20);
        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(50);

        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(10).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(11).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(12).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(13).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(14).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(15).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(16).setPreferredWidth(50);

        //codigo para esconder uma coluna na JTable
        //Esconder alguma coluna: No Caso a Primeira Coluna
        jTUnidade.getColumnModel().getColumn(0).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(5).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(5).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(6).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(6).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(7).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(7).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(8).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(8).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(9).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(9).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(10).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(10).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(10).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(11).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(11).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(11).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(12).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(12).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(12).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(13).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(13).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(13).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(14).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(14).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(14).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(15).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(15).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(15).setMaxWidth(0);

        jTUnidade.getColumnModel().getColumn(16).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(16).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(16).setMaxWidth(0);

    }

    private void monta_jTUnidade() {
//      Fachada f = new Fachada();

        limpaCampos();
        FisicaDAO fdao = new FisicaDAO();
        JuridicaDAO jdao = new JuridicaDAO();
        List<Fisica> listaf = new ArrayList<Fisica>();
        List<Juridica> listaj = new ArrayList<Juridica>();

        modelo.setNumRows(0);
        listaf = fdao.findAll2();
        listaj = jdao.findAll2();

        for (int i = 0; i < listaf.size(); i++) {
            modelo.addRow(new Object[]{listaf.get(i).getId_Pessoa(),
                listaf.get(i).getNome(),
                listaf.get(i).getCpf(),
                "",
                "Pessoa Física",
                //dados do endereço
                listaf.get(i).getEndereco(),
                listaf.get(i).getCep(),
                listaf.get(i).getBairro(),
                listaf.get(i).getCidade(),
                listaf.get(i).getUf(),
                listaf.get(i).getFone(),
                //dados bancarios
                listaf.get(i).getNome_Agencia(),
                listaf.get(i).getNome_Banco(),
                listaf.get(i).getNum_Agencia(),
                listaf.get(i).getNum_Banco(),
                listaf.get(i).getNum_Conta(),
                //dado de endereço que rafael tinha esquecido de colocar antes
                listaf.get(i).getNumero()
            });
        }

        for (int i = 0; i < listaj.size(); i++) {
            modelo.addRow(new Object[]{listaj.get(i).getId_Pessoa(),
                listaj.get(i).getNome(),
                listaj.get(i).getCnpj(),
                listaj.get(i).getRazaoSocial(),
                "Pessoa Juridica",
                //dados do endereço
                listaj.get(i).getEndereco(),
                listaj.get(i).getCep(),
                listaj.get(i).getBairro(),
                listaj.get(i).getCidade(),
                listaj.get(i).getUf(),
                listaj.get(i).getFone(),
                //dados bancarios
                listaj.get(i).getNome_Agencia(),
                listaj.get(i).getNome_Banco(),
                listaj.get(i).getNum_Agencia(),
                listaj.get(i).getNum_Banco(),
                listaj.get(i).getNum_Conta(),
                //dado de endereço que rafael tinha esquecido de colocar antes
                listaj.get(i).getNumero()
            });
        }
    }

    private void Atribui_Campos() {

        //atribui os campos de Pessoa
        jtCod.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 0).toString());
        jtNome.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 1));

        //atribui os campos dos endereços
        jtRua.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 5));
        ftCep.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 6));
        jtBairro.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 7));
        jtCidade.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 8));
        cbEstado.getModel().setSelectedItem(jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 9));
        ftFone.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 10));
        jtNumero.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 16).toString());

        //atribui o campo do tipo
        if (jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 4).equals("Pessoa Física")) {

            //Campo de Física
            ftCPF.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 2));

            //atribui os campos dos dados bancarios
            jtNomeAgencia.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 11));
            jtNomeBanco.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 12));
            jtNumAgencia.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 13).toString());
            jtNumBanco.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 14).toString());
            jtNumConta.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 15).toString());

            //atribui o RadioButton
            rbFisica.setSelected(true);
            rbJuridica.setEnabled(false);
        } else if (jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 4).equals("Pessoa Juridica")) {
            //Campo de Juridica
            ftCNPJ.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 2));
            jtRazaoSocial.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 3));

            //atribui os campos dos dados bancarios
            jtNomeAgencia1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 11));
            jtNomeBanco1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 12));
            jtNumAgencia1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 13).toString());
            jtNumBanco1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 14).toString());
            jtNumConta1.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 15).toString());

            //atribui o RadioButton
            rbJuridica.setSelected(true);
            rbFisica.setEnabled(false);
        }
    }

    public void exibePainelCadastro(boolean val) {

        //painel da tabela
        jScrollPane1.setVisible(!val);
        lbTipo.setVisible(val);
        rbFisica.setVisible(val);
        rbJuridica.setVisible(val);
        //organiza os botões
        btNovo.setVisible(!val);
        btEditar.setVisible(!val);
        btExcluir.setVisible(!val);
        btAnterior.setVisible(!val);
        btPrimeiro.setVisible(!val);
        btProximo.setVisible(!val);
        btUltimo.setVisible(!val);
        btImprimir.setVisible(!val);
        relTipo1.setVisible(!val);
        relTipo2.setVisible(!val);

        //codigo especifico para tela, pelo fato de ter muitos painels de cadastro sobrepostos
        //Esconde os botões de salvar
        btGravar1.setVisible(false);
        btGravar2.setVisible(false);
        //organiza os paineis
        jPanelPessoa.setVisible(false);
        //Esconde paineis especificos de Pessoa
        jPanelFisica.setVisible(false);
        jPanelJuridica.setVisible(false);
    }

    private void novoRegistro() {

        liberarCampos(true);
        exibePainelCadastro(true);

        //coloca os radioButtons para poderem ser alterados, pois no alterar um deles é travado
        rbFisica.setEnabled(true);
        rbJuridica.setEnabled(true);

        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount() - 1;
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        opcao = "incluir";
        jTUnidade.setEnabled(false);
        ajusta_botoes();
        limpaCampos();

    }

    private boolean validarCamposPessoa() {

        if ((jtNome.getText().trim().equals("")) || (jtNome.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NOME não pode ficar em branco. Verifique!!!");
            jtNome.requestFocus();
            return false;
        } else if ((ftFone.getText().trim().equals("")) || (ftFone.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo TELEFONE não pode ficar em branco. Verifique!!!");
            ftFone.requestFocus();
            return false;
        } else if ((jtRua.getText().trim().equals("")) || (jtRua.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo RUA não pode ficar em branco. Verifique!!!");
            jtRua.requestFocus();
            return false;
        } else if ((ftCep.getText().trim().equals("")) || (ftCep.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo CEP não pode ficar em branco. Verifique!!!");
            ftCep.requestFocus();
            return false;
        } else if ((jtBairro.getText().trim().equals("")) || (jtBairro.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo BAIRRO não pode ficar em branco. Verifique!!!");
            jtBairro.requestFocus();
            return false;
        } else if ((jtCidade.getText().trim().equals("")) || (jtCidade.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo CIDADE não pode ficar em branco. Verifique!!!");
            jtCidade.requestFocus();
            return false;
        } else if ((cbEstado.getSelectedItem() == null)) {
            JOptionPane.showMessageDialog(null, "O campo ESTADO não pode ficar em branco. Verifique!!!");
            cbEstado.requestFocus();
            return false;
        } else if ((jtNumero.getText().trim().equals("")) || (jtNumero.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NUMERO não pode ficar em branco. Verifique!!!");
            jtNumero.requestFocus();
            return false;
        }
        return true;
    }

    private boolean validarCamposJuridica() {

        if ((ftCNPJ.getText().trim().equals("")) || (ftCNPJ.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo CNPJ não pode ficar em branco. Verifique!!!");
            ftCNPJ.requestFocus();
            return false;
        } else if ((jtRazaoSocial.getText().trim().equals("")) || (jtRazaoSocial.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo RAZÃO SOCIAL não pode ficar em branco. Verifique!!!");
            jtRazaoSocial.requestFocus();
            return false;
        } else if ((jtNumBanco1.getText().trim().equals("")) || (jtNumBanco1.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DO BANCO não pode ficar em branco. Verifique!!!");
            jtNumBanco1.requestFocus();
            return false;
        } else if ((jtNumAgencia1.getText().trim().equals("")) || (jtNumAgencia1.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DA AGÊNCIA não pode ficar em branco. Verifique!!!");
            jtNumAgencia1.requestFocus();
            return false;
        } else if ((jtNumConta1.getText().trim().equals("")) || (jtNumConta1.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DA CONTA não pode ficar em branco. Verifique!!!");
            jtNumConta1.requestFocus();
            return false;
        } else if ((jtNomeBanco1.getText().trim().equals("")) || (jtNomeBanco1.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NOME DO BANCO não pode ficar em branco. Verifique!!!");
            jtNomeBanco1.requestFocus();
            return false;
        } else if ((jtNomeAgencia1.getText().trim().equals("")) || (jtNomeAgencia1.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NOME DA AGÊNCIA não pode ficar em branco. Verifique!!!");
            jtNomeAgencia1.requestFocus();
            return false;
        }
        return true;
    }

    private boolean validarCamposFisica() {

        if ((ftCPF.getText().trim().equals("")) || (ftCPF.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo CPF não pode ficar em branco. Verifique!!!");
            ftCPF.requestFocus();
            return false;
        } else if ((jtNumBanco.getText().trim().equals("")) || (jtNumBanco.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DO BANCO não pode ficar em branco. Verifique!!!");
            jtNumBanco.requestFocus();
            return false;
        } else if ((jtNumAgencia.getText().trim().equals("")) || (jtNumAgencia.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DA AGÊNCIA não pode ficar em branco. Verifique!!!");
            jtNumAgencia.requestFocus();
            return false;
        } else if ((jtNumConta.getText().trim().equals("")) || (jtNumConta.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NÚMERO DA CONTA não pode ficar em branco. Verifique!!!");
            jtNumConta1.requestFocus();
            return false;
        } else if ((jtNomeBanco.getText().trim().equals("")) || (jtNomeBanco.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NOME DO BANCO não pode ficar em branco. Verifique!!!");
            jtNomeBanco.requestFocus();
            return false;
        } else if ((jtNomeAgencia.getText().trim().equals("")) || (jtNomeAgencia.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo NOME DA AGÊNCIA não pode ficar em branco. Verifique!!!");
            jtNomeAgencia.requestFocus();
            return false;
        }

        return true;
    }

    private void alteraRegistro() {
        if (!(jtCod.getText().equals(""))) {
            liberarCampos(true);
            exibePainelCadastro(true);

            opcao = "alterar";
            jTUnidade.setEnabled(false);
            ajusta_botoes();

//        jtBairro.setEditable(true);
//        ftCep.setEditable(true);
//        jtBairro.requestFocus();
        }
    }

    public void liberarCampos(boolean val) {
        ftCep.setEditable(val);
        jtNome.setEditable(val);
        jtRua.setEditable(val);
        jtBairro.setEditable(val);
    }

    public void limpaCampos() {
        //campos de Pessoa
        jtCod.setText(null);
        jtNome.setText(null);
        ftFone.setText(null);
        //campos do Endereço
        jtRua.setText(null);
        jtBairro.setText(null);
        ftCep.setText(null);
        jtCidade.setText(null);
        jtNumero.setText(null);
        cbEstado.setSelectedIndex(-1);
        //campos da subclasse Juridica
        ftCNPJ.setText(null);
        jtRazaoSocial.setText(null);
        jtNumBanco1.setText(null);
        jtNomeBanco1.setText(null);
        jtNomeAgencia1.setText(null);
        jtNumAgencia1.setText(null);
        jtNumConta1.setText(null);
        //campos da subclasse Fisica
        ftCPF.setText(null);
        jtNumBanco.setText(null);
        jtNomeBanco.setText(null);
        jtNumAgencia.setText(null);
        jtNomeAgencia.setText(null);
        jtNumConta.setText(null);
        //campos do tipo
        buttonGroupTipo.clearSelection();
    }

    //Grava o registro da Pessoa Juridica
    private void gravaRegistroJuridica() {

        String mens = "";
        int valor = 0;
        Juridica j = new Juridica();

        JuridicaDAO jdao = new JuridicaDAO();

        while (validarCamposJuridica() == true) {

            //Setando a super classe Pessoa
            j.setNome(jtNome.getText());
            j.setEndereco(jtRua.getText());
            j.setBairro(jtBairro.getText());
            j.setCep(ftCep.getText());
            j.setCidade(jtCidade.getText());
            j.setNumero(Integer.parseInt(jtNumero.getText()));
            j.setUf(cbEstado.getSelectedItem().toString());
            j.setFone(ftFone.getText());
            //Setando a subclasse Juridica
            j.setCnpj(ftCNPJ.getText());
            j.setRazaoSocial(jtRazaoSocial.getText());
            j.setNum_Banco(Integer.parseInt(jtNumBanco1.getText()));
            j.setNome_Banco(jtNomeBanco1.getText());
            j.setNum_Agencia(Integer.parseInt(jtNumAgencia1.getText()));
            j.setNome_Agencia(jtNomeAgencia1.getText());
            j.setNum_Conta(Integer.parseInt(jtNumConta1.getText()));

            if (opcao.equals("incluir")) {
                jdao.incluir(j);
                valor = 1;

                exibePainelCadastro(false);

                mens = "Registro Gravado com Sucesso!!!";
            } else if (opcao.equals("alterar")) {
                j.setId_Pessoa(Integer.parseInt(jtCod.getText()));
                jdao.alterar(j);
                valor = 1;
                mens = "Registro Alterado com Sucesso!!!";
                exibePainelCadastro(false);
            }

            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }

            opcao = "";
            jTUnidade.setEnabled(true);
            jtCod.setEditable(false);
            monta_jTUnidade();
            ajusta_botoes();
            liberarCampos(false);
            break;
        }

    }

    //Grava o registro da Pessoa Fisica
    private void gravaRegistroFisica() {

        String mens = "";
        int valor = 0;
        Fisica f = new Fisica();

        FisicaDAO fdao = new FisicaDAO();

        while (validarCamposFisica() == true) {

            //Setando a super classe Pessoa
            f.setNome(jtNome.getText());
            f.setEndereco(jtRua.getText());
            f.setBairro(jtBairro.getText());
            f.setCep(ftCep.getText());
            f.setCidade(jtCidade.getText());
            f.setNumero(Integer.parseInt(jtNumero.getText()));
            f.setUf(cbEstado.getSelectedItem().toString());
            f.setFone(ftFone.getText());
            //Setando a subclasse Fisica
            f.setCpf(ftCPF.getText());
            f.setNum_Banco(Integer.parseInt(jtNumBanco.getText()));
            f.setNome_Banco(jtNomeBanco.getText());
            f.setNum_Agencia(Integer.parseInt(jtNumAgencia.getText()));
            f.setNome_Agencia(jtNomeAgencia.getText());
            f.setNum_Conta(Integer.parseInt(jtNumConta.getText()));

            //Salva um novo registro
            if (opcao.equals("incluir")) {
                fdao.incluir(f);
                valor = 1;

                exibePainelCadastro(false);

                mens = "Registro Gravado com Sucesso!!!";
                //Altera o Registro
            } else if (opcao.equals("alterar")) {
                f.setId_Pessoa(Integer.parseInt(jtCod.getText()));
                fdao.alterar(f);
                valor = 1;
                mens = "Registro Alterado com Sucesso!!!";
                exibePainelCadastro(false);
            }

            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
                //É chamado se houver algum erro    
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }

            opcao = "";
            jTUnidade.setEnabled(true);
            jtCod.setEditable(false);
            monta_jTUnidade();
            ajusta_botoes();
            liberarCampos(false);
            break;
        }

    }

    private void cancelaRegistro() {
        liberarCampos(false);
        exibePainelCadastro(false);

        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }

        opcao = "";
        jtCod.setEditable(false);
        jTUnidade.setEnabled(true);
        ajusta_botoes();
    }

    private void excluiRegistro() {
        int valor = 0;

        PessoaDAO pdao = new PessoaDAO();
        Pessoa p = new Pessoa();

        JuridicaDAO jdao = new JuridicaDAO();
        Juridica j = new Juridica();

        FisicaDAO fdao = new FisicaDAO();
        Fisica f = new Fisica();

        if (rbFisica.isSelected()) {
            f.setId_Pessoa(Integer.parseInt(jtCod.getText()));
            p.setId_Pessoa(f.getId_Pessoa());
        } else if (rbJuridica.isSelected()) {
            j.setId_Pessoa(Integer.parseInt(jtCod.getText()));
            p.setId_Pessoa(j.getId_Pessoa());
        }

        String nome = "Tem Certeza em Deletar Este Registro?";
        int opc = JOptionPane.showConfirmDialog(null, nome, "Exclusão", JOptionPane.YES_NO_OPTION);

        if (opc == JOptionPane.YES_OPTION) {
            if (rbFisica.isSelected()) {
                //fdao.remover2(f);
                pdao.remover2(p);
            } else if (rbJuridica.isSelected()) {
                //jdao.remover2(j);
                pdao.remover2(p);
            }

            valor = 1;

            if (valor > 0) {
                JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão - Verifique!!!");
            }
        }
        monta_jTUnidade();
        cancelaRegistro();
    }
}
